package com.ruoyi.reunion.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 预约对象 reservation
 * 
 * @author ccccc
 * @date 2025-04-09
 */
public class Reservation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预约ID */
    private Long id;

    /** 场地ID */
    @Excel(name = "场地ID")
    private Long venueId;

    /** 预约人ID */
    @Excel(name = "预约人ID")
    private Long userId;

    /** 活动主题 */
    @Excel(name = "活动主题")
    private String activityTitle;

    /** 活动类型 */
    @Excel(name = "活动类型")
    private String activityType;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 参与人数 */
    @Excel(name = "参与人数")
    private Long participantCount;

    /** 用途说明 */
    @Excel(name = "用途说明")
    private String purpose;

    /** 活动预算 */
    @Excel(name = "活动预算")
    private BigDecimal budget;

    /** 状态：0-待审核，1-已通过，2-已拒绝，3-已取消，4-已完成 */
    @Excel(name = "状态：0-待审核，1-已通过，2-已拒绝，3-已取消，4-已完成")
    private Long status;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private Long reviewerId;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewTime;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String reviewComment;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setVenueId(Long venueId) 
    {
        this.venueId = venueId;
    }

    public Long getVenueId() 
    {
        return venueId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setActivityTitle(String activityTitle) 
    {
        this.activityTitle = activityTitle;
    }

    public String getActivityTitle() 
    {
        return activityTitle;
    }
    public void setActivityType(String activityType) 
    {
        this.activityType = activityType;
    }

    public String getActivityType() 
    {
        return activityType;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setParticipantCount(Long participantCount) 
    {
        this.participantCount = participantCount;
    }

    public Long getParticipantCount() 
    {
        return participantCount;
    }
    public void setPurpose(String purpose) 
    {
        this.purpose = purpose;
    }

    public String getPurpose() 
    {
        return purpose;
    }
    public void setBudget(BigDecimal budget) 
    {
        this.budget = budget;
    }

    public BigDecimal getBudget() 
    {
        return budget;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }
    public void setReviewerId(Long reviewerId) 
    {
        this.reviewerId = reviewerId;
    }

    public Long getReviewerId() 
    {
        return reviewerId;
    }
    public void setReviewTime(Date reviewTime) 
    {
        this.reviewTime = reviewTime;
    }

    public Date getReviewTime() 
    {
        return reviewTime;
    }
    public void setReviewComment(String reviewComment) 
    {
        this.reviewComment = reviewComment;
    }

    public String getReviewComment() 
    {
        return reviewComment;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("venueId", getVenueId())
            .append("userId", getUserId())
            .append("activityTitle", getActivityTitle())
            .append("activityType", getActivityType())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("participantCount", getParticipantCount())
            .append("purpose", getPurpose())
            .append("budget", getBudget())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("reviewerId", getReviewerId())
            .append("reviewTime", getReviewTime())
            .append("reviewComment", getReviewComment())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
